package com.hhd.form.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 单据字段定义
 * @author tangzy
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("design_form_field_definition")
public class DesignFormFieldDefinition implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId(value = "id", type = IdType.ID_WORKER_STR)
    private String id;

    /**
     * 单据id
     */
    @TableField("form_id")
    private String formId;

    /**
     * 字段标签
     */
    @TableField("label")
    private String label;

    /**
     * 数据库字段名称
     */
    @TableField("field_name")
    private String fieldName;

    /**
     * 数据库字段翻译名称
     */
    @TableField("field_title_name")
    private String fieldTitleName;

    /**
     * 数据长度
     */
    @TableField("length")
    private Long length;

    /**
     * 格式
     */
    @TableField("format")
    private String format;

    /**
     * 最大
     */
    @TableField("max_value")
    private String maxValue;

    /**
     * 最小
     */
    @TableField("min_value")
    private String minValue;

    /**
     * 提示文本
     */
    @TableField("placeholder")
    private String placeholder;

    /**
     * 数据字典
     */
    @TableField("dict")
    private String dict;

    /**
     * 是否是自定义组件
     */
    @TableField("custom_component")
    private Boolean customComponent;

    /**
     * 是否是视图中用的组件
     */
    @TableField("view_component")
    private Boolean viewComponent;

    /**
     * 扩展字段(提供给自定义组件使用的)
     */
    @TableField("exts")
    private String exts;

    @TableField("create_by")
    private String createBy;

    @TableField("create_time")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    @TableField("update_by")
    private String updateBy;

    @TableField("update_time")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /**
     * 备注
     */
    @TableField("remark")
    private String remark;

    /**
     * 前端组件名称
     */
    @TableField("component")
    private String component;

    /**
     * 排序
     */
    @TableField("sort")
    private Integer sort;


}
